Skip to content

ExpressionChainSink class

Attributes: [EditorBrowsable(EditorBrowsableState.1)] [RequiresUnreferencedCode("Evaluates expression-based member chains via reflection; members may be trimmed.")]

Defined in

Namespace: ReactiveUI.Binding.ObservableForProperty Assembly: ReactiveUI.Binding.dll Full name: ReactiveUI.Binding.ObservableForProperty.ExpressionChainSink<T1, T2> Modifiers: public sealed

Summary

View source

Walks an expression member chain (x.A.B.C) as a single switching engine: one watcher per link, each observing its link on the value produced by the previous link and re-subscribing the deeper links when an intermediate value changes. Emits the leaf value as an observed change, applying skip-initial, the non-null-parent filter, the cast to TValue, and the optional distinct-by-value gate inline — collapsing the nested Select+Switch fold plus Skip/Where/Select/DistinctUntilChanged into one allocation-light sink.

Applies to

net10.0, net10.0-browserwasm1.0, net10.0-desktop1.0, net9.0, net9.0-browserwasm1.0, net9.0-desktop1.0, net8.0, net8.0-ios17.5, net8.0-maccatalyst17.5, net8.0-macos14.2, net8.0-macos14.5, net8.0-tvos17.2, netstandard2.1, net462, net481

Class hierarchy
classDiagram
class ExpressionChainSink~T1,T2~
class IObservable~IObservedChange~TSender, TValue~~ {
    <>
}
IObservable~IObservedChange~TSender, TValue~~ <|.. ExpressionChainSink~T1,T2~

Implements: IObservable>

Constructors

NameSummary
.ctorInitializes a new instance of the [ExpressionChainSink](# class.

Methods

NameSummary
Subscribe
Inherited members